File systems typically organize objects as files in a hierarchy of directories, and an inode is assigned to each of the files and to each of the directories. A file inode includes references to data blocks of user data. A directory inode includes references to data blocks that contain filenames, which may correspond to either a directory or a file, and inode numbers corresponding to the filenames.
Applications access files using fully qualified paths to the files and a namespace indicates the paths that lead to valid inodes corresponding to such files on the file system. As such, the availability of the inodes and hence user data on the file system is a direct function of availability of the namespace, since files are accessed using their path names.
The availability of inodes becomes difficult to ensure when a file system employs a logical volume manager. A logical volume manager is a software or firmware component that organizes a plurality of data storage units into an ordered set of physical extents called a logical volume. The logical volume is available in the form of a logical device with a contiguous address space on which a file system is laid out. The logical volume enables useful enterprise features such as the ability to hot-replace data storage units without changing the file system address space, hot-extend logical volume length by adding new data storage units, provide software redundant array of inexpensive disks (RAID) availability features, implement data mirroring and replication over multiple data storage units, and the like.
When a file system uses logical volumes, the file system no longer controls physical placement of inodes on data storage units. The file system only controls inode layout in the logical volume address space. The mapping of inodes in the logical volume address space to data storage units is done outside the file system's control by the logical volume manager such as based on availability. Consequently, inodes may be scattered over data storage units with different inodes residing in different data storage units. As one example, a file represented by the path “/root/dir1/dir2/example.doc” may have inodes for the directories (directory inodes) and the file (file inode) residing in different data storage units.
Thus, in a file system that employs logical volumes, availability of the namespace and file objects referenced by paths is contingent on availability of all the data storage units that comprise a logical volume. If one or more of the data storage units comprising a logical volume go offline, a file may not be accessible by the file system, because the inode corresponding to one or more of the file's path components, e.g., /dir1 or /dir2, may not be available.